package org.feng.service;

import org.feng.datasource.DataSourceProperties;

import java.util.Map;

/**
 * 动态数据源服务
 *
 * @author pine
 * @version v1.0
 * @since 2025-06-07 18:20
 */
public interface DynamicDataSourceService {


    /**
     * 获取当前支持的所有数据源信息
     */
    Map<String, DataSourceProperties> getAllDataSourceInfo();

    /**
     * 根据租户获取指定的数据源信息
     */
    DataSourceProperties getDataSourceInfo(String tenantId);

    /**
     * 根据租户切换数据源
     */
    void switchDataSource(String tenantId);


    /**
     * 根据租户移除数据源
     */
    void removeDataSource(String tenantId);


    /**
     * 清空所有数据源
     */
    void clearDataSource();


    /**
     * 新增或更新数据源
     */
    void addOrUpdateDataSource(String tenantId, DataSourceProperties dataSourceProperties);

}
